package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.PaisFacade;
import sv.com.bolsaTrabajo.model.entities.Pais;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class PaisMB extends ManejadorAccion {

    @EJB
    private PaisFacade paisFacade;
    private Pais pais;
    private List<Pais> paises;

    /**
     * Constructor
     */
    public PaisMB() {
        limpiarPais();
        pais = new Pais();
    }

    public void limpiarPais() {
        setPais(new Pais());
    }

    public List<Pais> getPaises() {
        paises = paisFacade.obtenerTodos();
        return paises;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear PAIS");
            getPais().setFechaMod(new Date());

            if (pais.getIdPais() == null) {
                paisFacade.crear(pais);
                lanzarMensajeInformacion("Exito", "Pais guardada correctamente");

            } else {
                paisFacade.modificar(pais);
                lanzarMensajeInformacion("Exito", "Pais modificada correctamente");

            }
            RequestContext.getCurrentInstance().update("IDFrmPais");
            RequestContext.getCurrentInstance().execute("WVDialogPais.hide();");

        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Pais ", e);
        }
    }

    public void modificarEntidad(Pais modPais) {
        try {
            this.pais = modPais;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Categoria", e);

        }
        RequestContext.getCurrentInstance().update("");
    }


    /**
     * ****************** Getters and Setter ********************
     */
    
    public PaisFacade getPaisFacade() {
        return paisFacade;
    }

    public void setPaisFacade(PaisFacade paisFacade) {
        this.paisFacade = paisFacade;
    }

    public Pais getPais() {
        return pais;
    }

    public void setPais(Pais pais) {
        this.pais = pais;
    }
       
 }
